import Cookies from 'js-cookie'

const app = {
	state: {
		sidebar: {
			withoutAnimation: false,
			opened: Cookies.get('sidebarStatus') === 1
		},
		device: 'desktop',
		size: Cookies.get('size') || 'medium'
	},
	getters: {
		sidebar: state => state.sidebar,
		size: state => state.size,
		device: state => state.device
	},
	mutations: {
		SET_SIZE: (state, size) => {
			state.size = size;
			Cookies.set('size', size)
		},
		TOGGLE_DEVICE: (state, device) => {
			state.device = device
		},
		CLOSE_SIDEBAR: (state, withoutAnimation) => {
			Cookies.set('sidebarStatus', 0);
			state.sidebar.opened = false;
			state.sidebar.withoutAnimation = withoutAnimation
		},
		TOGGLE_SIDEBAR: state => {
			state.sidebar.opened = !state.sidebar.opened;
			state.sidebar.withoutAnimation = false;
			if (state.sidebar.opened) {
				Cookies.set('sidebarStatus', 1)
			} else {
				Cookies.set('sidebarStatus', 0)
			}
		}
	},
	actions: {
		toggleSideBar({commit}) {
			commit('TOGGLE_SIDEBAR')
		},
		closeSideBar({commit}, {withoutAnimation}) {
			commit('CLOSE_SIDEBAR', withoutAnimation)
		},
		toggleDevice({commit}, device) {
			commit('TOGGLE_DEVICE', device)
		},
		setSize({commit}, size) {
			commit('SET_SIZE', size)
		}
	}
};

export default app